perm filename EUR.NOT[AM,DBL] blob sn#484178 filedate 1979-11-29 generic text, type T, neo UTF8
 -- Messages from file: [SUMEX-AIM]<LENAT>MESSAGE.TXT;1
		 -- Thursday, November 29, 1979 12:30:48 --

Mail from SU-SCORE rcvd at 29-Nov-79 1220-PST
Date: 29 Nov 1979 1214-PST
From: CSD.GREINER at SU-SCORE
Subject: Futher modifications
To: lenat at SUMEX-AIM, csd.smith at SU-SCORE
cc: csd.greiner at SU-SCORE

Rejoice - you can now one-of to your heart's content, almost. AnyFormat
has 2 specifializations: AnySlotFormat and AnyValueFormat. Examples of the
first include FSingleton (nee Atom), FSet (List), FOrderedSet (OrderedList)
and FBag. [The leading F is for Format.] Note that the value of a slot's
format should be one of these - or write your own, if you feel adventurous (sp).
Existing units have been so updated. Each format has the following slots:
FnForAdding1, FnForAddingList, FnForDeleting1, FnForDeletingList, 
FnForVerifyingList and FnForVerifyingAll. The value of each should be a function
of 5 arguments: newval, oldval, unit, slot and fnForPart for the first 4,
with verifier substituted for newval for the latter two cases. (..Verify..)
	The final argument: fnForPart, is used by descendants of AnyValueFormat.∨∨
So now we come to FOneOf. It basically returns the result of MAPCARing along
the CDDR of oldval, applying the operator indicated (eg adding a value) based
on the format of the slot proper. That operator is its 5th argument.
The CDDR is because the actual value filling the slot should be, for example,
(*Do* FOneOf elem-1 elem-2 ... elem-N), where each elem-i is an acceptable
entry for the value of this slot.
	A problem which emerged: How to maintain KB consistency with these buggers?
For example, spse Isa[Fred] is (*Do* FOneOf (Dog) (Cat)). Now should Fred be
on the Examples list of Cat, or Dog, or both? And how annonated, in whichever
location? Who should decide? Isa, or FOneOf, or ...
Of course, I would be happy to simply exclude this from consideration --
ie the value of a pointer slot must be pure.
	Comments, suggestions?
Dave: (1) When U?.TRACEFLG is T, could you print out what Files are being loaded
during UF-OPENNETWORK, and what Networks opened and Function(s) called? Although
I don't need that assistance now, I might later, and it seems a good move to
leave the option of making such things explicit whenever possible.
(2) As mentioned, some more units found some way to remain on the incorelist.
See TRACE.NOV28.1 for further details. The SYSOUT subsequently made is
RDGSAVE.EXE.1 (on <CSD.LENAT>).
	Doug: That infinite finger-pointing-loop occured again last Tuesday
evening. Without warning, whilst playing in CORLL, my terminal starting spewing
a stream of characters, ignoring ↑C, ↑T, and the like. After about 3-4 minutes
this stopped, and I found myself unable to continue. Someone had unmapping
one of my files -- the dribble file it turned out. With some help I was able
to continue, and everything seemed to work alright  -- except I lost the
dribble file (whatever bug it was, it sure knew how to cover its tracks...)
Back to the story: Bosack claimed this was obviously an InterLisp bug -
perhaps induced by some line trouble, but a bonafide bug nonetheless. DEA
thought otherwise: obviously this was beyond LISP's jurisdiction. You decide.
As it only happened once, and (with SDDT) proved not to be fatal, this letter
is the only action I've taken.
	Sorry to drone on and on like this...
Russ
-------